#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=35;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int n,m,f[N][N];//用i步到j号的所有总方案
int main()
{
	close();
	cin>>n>>m;//n个同学,m步数,枚举步数
	f[0][1]=1;//从1号小蛮开始发球

	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(j==1) f[i][j]=f[i-1][n]+f[i-1][2];
			else if(j==n) f[i][j]=f[i-1][n-1]+f[i-1][1];
			else f[i][j]=f[i-1][j+1]+f[i-1][j-1];
		}
	}
	cout<<f[m][1]<<'\n';//一号同学放小蛮

	return 0;
}
//条件给的就是从小蛮开始传,就令小蛮是1号位